<?php

namespace App\Jobs;

use App\Models\Admin;
use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Redis;
use Whoops\Exception\ErrorException;

class SendNotifyEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;


	/**
	 * 任务最大尝试次数。
	 *
	 * @var int
	 */
//	public $tries = 5;

	/**
	 * 任务运行的超时时间。
	 *
	 * @var int
	 */
	//public $timeout = 120;

	//队列的email key值
//	protected $email_queue_key;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($email_queue_key)
    {
		// 队列任务构造器中接收了 Eloquent 模型，将会只序列化模型的 ID
		$this->email_queue_key = $email_queue_key;
    }

    /**
     * 消费队列处理这个队列 Job
     *
     * @return void
     */
    public function handle()
    {
//		$queue = $this->email_queue_key;

		$i =0;
		while ($i < 5000){
			if($user = Redis::rpop('send_email_arr')){

				//取出来一次是500个
				$user = unserialize($user);
				$user = json_decode($user,true);
				write_log($user);
				//执行队列任务
				User::query()->where([
					'username'=>$user['username'],
					'id'=>$user['id']
				])->update([
					'thumb'=>date('Y-m-d H:i:s',time())
				]);
//				$to = $v['email'];
//
//				$msg = [
//					'title'=>'测试邮件',
//					'content'=>'这是测试内容'
//				];
//				Mail::send('email_tpl.email',$msg,function ($message) use ($to){
//					$message->to($to)->subject('【您有新的消息】邮件来了');
//				});
			}

			$i++;

		}
    }


//		$msg = [
//			'title'=>'测试邮件',
//			'content'=>'这是测试内容'
//		];
//		Mail::send('email_tpl.email',$msg,function ($message) use ($to){
//			$message->to($to)->subject('【您有新的消息】邮件来了');
//		});
//		User::query()->where([
//			'username'=>$v['username'],
//			'id'=>$v['id']
//		])->update([
//			'thumb'=>date('Y-m-d H:i:s',time())
//		]);

//    }

	/**
	 * 配置队列标签
	 * User: Clannad ~ ☆
	 * DataTime：2019/11/21 0021 14:25
	 * @return array
	 */
//	public function tags()
//	{
//		return ['render', 'send_email_to:'.$this->->id];
//	}






//
//\DB::table('user')->where('id',$this->user->id)->update([
//'wx_username'=>date('Y-m-d H:i:s',time()) . ' 队列测试成功s—重启后' . $this->arr,
//]);
}
